﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace SoftHotel.Models
{
    public class Horario : IValidatableObject
    {
        [Key]
        public int idHorario { get; set; }

        [Required(ErrorMessage = "El campo Trabajador es requerido.")]
        public int idTrabajador { get; set; }

        [Required(ErrorMessage = "El campo Sede es requerido.")]
        public int idSede { get; set; }

        [Required(ErrorMessage = "El campo Turno es requerido.")]
        public int turno  { get; set; }

        [Required(ErrorMessage = "El campo Estado es requerido.")]
        public int estado { get; set; }
        [NotMapped]
        public int dia { get; set; }

        [DisplayName("Fecha de inicio")]
        [Required(ErrorMessage = "El campo Fecha de inicio es requerido.")]
        public DateTime fechaInicio { get; set; }
        
        [DisplayName("Fecha de fin")]
        public DateTime? fechaFin { get; set; }

        [DisplayName("Trabajador")]
        public Trabajador trabajador { get; set; }

        [DisplayName("Sede")]
        public Sede sede { get; set; }

        [ForeignKey("turno")]
        [DisplayName("Turno")]
        public Parametro pTurno { get; set; }

        [ForeignKey("estado")]
        [DisplayName("Estado")]
        public Parametro pEstado { get; set; }

//        [DisplayName("Día")]
//        public Parametro pDia { get; set; }

        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            if (fechaFin < fechaInicio)
                yield return new ValidationResult("La Fecha de inicio debe ser menor a la Fecha de fin.", new string[] { "fechaInicio", "fechaFin" });
        }
       
    }
}